#ifndef SCENE_H
#define SCENE_H

#include "Ptr.h"

class Scene {
public:
	virtual ~Scene();

public:
	virtual void initialize() = 0;

	virtual void readInput() = 0;

	virtual void update() = 0;

	virtual void draw() = 0;

	virtual void sleep() = 0;

	virtual void finish() = 0;

	virtual Ptr<Scene> getNextScene() = 0;

	virtual bool canSkipFrame() = 0;

	virtual bool isInitialized() = 0;
};

#endif // SCENE_H
